package single;

/**
 * @author XM
 * @version 1.0
 */
public class Single {
    /**
     * 静态私有对象
     */
    private static Single single = null;

    /**
     * 私有构造方法<br>
     *     使外部不能通过new关键字来创建对象
     */
    private Single(){}

    /**
     * getInstance()方法，用于获取{@link Single} 对象
     * @return Single
     */
    public static Single getInstance() {

        // 判断对象是否为空
        if (single == null) {
            // single对象为空，加锁，增加线程安全
            synchronized (Single.class) {
                // 再次判断single对象是否为空
                if (single == null) {
                    // single对象为空，创建对象
                    single = new Single();
                }
            }
        }
        return single;
    }

    /**
     * 打印输出"single创建成功"
     */
    public void show() {
        System.out.println("single创建成功") ; // 打印输出信息
    }
}
